package middleware

import (
	"github.com/gin-gonic/gin"
	"log"
	"net/http"
)

func CORSMiddleware() gin.HandlerFunc {
	return func(c *gin.Context) {
		//设置跨域问题 允许8080端口访问本服务的端口，可以*号
		c.Writer.Header().Set("Access-Control-Allow-Origin","http://localhost:8080")
		//运行访问的时间
		c.Writer.Header().Set("Access-Control-Max-Age","84600")
		//允许使用的方法 GET POST
		c.Writer.Header().Set("Access-Control-Allow-Methods","*")
		//允许使用的Header 可以指定某一些header之类的
		c.Writer.Header().Set("Access-Control-Allow-Headers","*")
		c.Writer.Header().Set("Access-Control-Allow-Credentials","true")
		//如果请求的是预检命令 (OPTIONS方法)详情见 ，https://zhuanlan.zhihu.com/p/66484450
		if c.Request.Method==http.MethodOptions{
			log.Println("------CORSMiddleware-----------")
			c.AbortWithStatus(200)
		}else{
			c.Next()
		}
	}
}